//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"


// swift 字面量

/* swift 字面量
 所谓字面量，就是指像特定的数字，字符串或者是布尔值这样，能够直接了当地指出自己的类型并为变量进行赋值的值。比如在下面：

 let aNumber = 3         //整型字面量
 let aString = "Hello"   //字符串字面量
 let aBool = true        //布尔值字面量

 */


/* 整形字面量
 整型字面量可以是一个十进制，二进制，八进制或十六进制常量。 二进制前缀为 0b，八进制前缀为 0o，十六进制前缀为 0x，十进制没有前缀：
 以下为一些整型字面量的实例：
 let decimalInteger = 17           // 17 - 十进制表示
 let binaryInteger = 0b10001       // 17 - 二进制表示
 let octalInteger = 0o21           // 17 - 八进制表示
 let hexadecimalInteger = 0x11     // 17 - 十六进制表示
 
 */


/* 浮点型字面变量
 浮点型字面量有整数部分，小数点，小数部分及指数部分。
 除非特别指定，浮点型字面量的默认推导类型为 Swift 标准库类型中的 Double，表示64位浮点数。
 浮点型字面量默认用十进制表示（无前缀），也可以用十六进制表示（加前缀 0x）。
 十进制浮点型字面量由十进制数字串后跟小数部分或指数部分（或两者皆有）组成。十进制小数部分由小数点 . 后跟十进制数字串组成。指数部分由大写或小写字母 e 为前缀后跟十进制数字串组成，这串数字表示 e 之前的数量乘以 10 的几次方。例如：1.25e2 表示 1.25 ⨉ 10^2，也就是 125.0；同样，1.25e－2 表示 1.25 ⨉ 10^－2，也就是 0.0125。
 十六进制浮点型字面量由前缀 0x 后跟可选的十六进制小数部分以及十六进制指数部分组成。十六进制小数部分由小数点后跟十六进制数字串组成。指数部分由大写或小写字母 p 为前缀后跟十进制数字串组成，这串数字表示 p 之前的数量乘以 2 的几次方。例如：0xFp2 表示 15 ⨉ 2^2，也就是 60；同样，0xFp-2 表示 15 ⨉ 2^-2，也就是 3.75。
 负的浮点型字面量由一元运算符减号 - 和浮点型字面量组成，例如 -42.5。
 浮点型字面量允许使用下划线 _ 来增强数字的可读性，下划线会被系统忽略，因此不会影响字面量的值。同样地，也可以在数字前加 0，并不会影响字面量的值。
 以下为一些浮点型字面量的实例：
 let decimalDouble = 12.1875       //十进制浮点型字面量
 let exponentDouble = 1.21875e1    //十进制浮点型字面量
 let hexadecimalDouble = 0xC.3p0   //十六进制浮点型字面量
 
 */


/*  字符串型 字面量
 
 字符串型字面量由被包在双引号中的一串字符组成，形式如下：
 "characters"
 字符串型字面量中不能包含未转义的双引号 （"）、未转义的反斜线（\）、回车符或换行符。
 

 转移字符	含义
 \0	空字符
 \\	反斜线 \
 \b	退格(BS) ，将当前位置移到前一列
 \f	换页(FF)，将当前位置移到下页开头
 \n	换行符
 \r	回车符
 \t	水平制表符
 \v	垂直制表符
 \'	单引号
 \"	双引号
 \000	1到3位八进制数所代表的任意字符
 \xhh...	1到2位十六进制所代表的任意字符

 <👇 不是很理解 的>
 
 \000	1到3位八进制数所代表的任意字符
 \xhh...	1到2位十六进制所代表的任意字符
 
 <👆 不是很理解 的>
 */


let stringL = "hell world \n 百度官方网址是 \'http://www.baidu.com'"
print(stringL)


/*  布尔型字面变量

 布尔型字面量的默认类型是 Bool。
 布尔值字面量有三个值，它们是 Swift 的保留关键字：
 true 表示真。
 false 表示假。
 nil 表示没有值。

 */

